#define _GNU_SOURCE // 申明可以使用扩展语法
#include "pthread.h"
#include <stdio.h>
#include "unistd.h"

// first线程函数
void *first_thread_fun(void *arg)
{
    printf("first线程函数执行！线程号：%d\n", gettid());
}

// second线程函数
void *second_thread_fun(void *arg)
{
    printf("second线程函数执行！线程号：%d\n", gettid());
}

int main()
{
    // 开始执行主线程
    printf("main函数线程开始执行！线程号：%d\n", gettid());
    // 创建线程
    pthread_t pt1, pt2;
    pthread_create(&pt1, NULL, first_thread_fun, NULL);
    pthread_create(&pt2, NULL, second_thread_fun, NULL);
    printf("main线程函数继续执行！线程号：%d, pt1:%ld, pt2:%ld \n", gettid(), pt1, pt2);

    // 等待线程执行结束
    pthread_join(pt1, NULL);
    pthread_join(pt2, NULL);

    printf("主线程执行完毕！线程号：%d\n", gettid());

    return 0;
}